package com.hsqn.entity;

import jakarta.validation.constraints.DecimalMin;
import jakarta.validation.constraints.Digits;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.time.LocalDateTime;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class MenuInfo {
    /** 餐品ID（主键，关联订单表的 menu_id） */
//    @TableId(type = IdType.AUTO)
    private Long id;

    /** 餐品名称（非空，用于展示） */
    @NotNull(message = "餐品名称不能为空")
    @Size(max = 100, message = "餐品名称不能超过100字")
    private String menuName;

    /** 餐品价格（非空，关联订单时同步价格） */
    @NotNull(message = "餐品价格不能为空")
    @DecimalMin(value = "0.01", message = "餐品价格必须大于0")
    @Digits(integer = 8, fraction = 2, message = "价格格式错误（最多8位整数，2位小数）")
    private BigDecimal menuPrice;

    /** 营养成分（可选，关联后可展示给用户） */
    @Size(max = 500, message = "营养成分描述不能超过500字")
    private String nutritionInfo;

    /** 餐品状态（1-可订，0-下架，关联时需过滤下架餐品） */
    private Integer menuStatus = 1;

    /** 创建时间 */
    private LocalDateTime createTime;

    /** 更新时间 */
    private LocalDateTime updateTime;
}
